G_DEFINE_TYPE (GdkX11Clipboard, gdk_x11_clipboard, GDK_TYPE_CLIPBOARD)
-#define SELECTION_MAX_SIZE(display) \
- MIN(262144, \
- XExtendedMaxRequestSize (GDK_DISPLAY_XDISPLAY (display)) == 0 \
- ? XMaxRequestSize (GDK_DISPLAY_XDISPLAY (display)) - 100 \
- : XExtendedMaxRequestSize (GDK_DISPLAY_XDISPLAY (display)) - 100)
-
static GInputStream *
text_list_convert (GdkX11Clipboard *cb,
GInputStream *stream,
gdk_content_formats_unref (formats);
g_input_stream_read_bytes_async (stream,
- SELECTION_MAX_SIZE (display),
+ gdk_x11_display_get_max_request_size (display),
G_PRIORITY_DEFAULT,
NULL,
gdk_x11_clipboard_request_targets_finish,
display = gdk_clipboard_get_display (GDK_CLIPBOARD (cb));
g_input_stream_read_bytes_async (stream,
- SELECTION_MAX_SIZE (display),
+ gdk_x11_display_get_max_request_size (display),
G_PRIORITY_DEFAULT,
NULL,
gdk_x11_clipboard_request_targets_finish,
g_slist_free (displays);
}
+
+gsize
+gdk_x11_display_get_max_request_size (GdkDisplay *display)
+{
+ Display *xdisplay = GDK_DISPLAY_XDISPLAY (display);
+ gsize size;
+
+ size = XExtendedMaxRequestSize (xdisplay);
+ if (size <= 0)
+ size = XMaxRequestSize (xdisplay);
+
+ size = MIN (262144, size - 100);
+ return size;
+}
GdkX11Screen *
gdk_x11_display_get_screen (GdkDisplay *display)
Window xrootwin);
void _gdk_x11_display_error_event (GdkDisplay *display,
XErrorEvent *error);
+gsize gdk_x11_display_get_max_request_size (GdkDisplay *display);
GdkFilterReturn _gdk_wm_protocols_filter (GdkXEvent *xev,
GdkEvent *event,